export default {
  strEncode (str) {
    /*
      登录加密规则
      总长度：28-38位
      例子：

      原始密码：123456
      10132023Xx123xxxxxxx456xxxxxx

      这里吧密码截取位2段

      解释  （第一段密码）10 代表 从10位开始
      （第一段密码）13 代表 从13位结束

      （第二段密码）20 代表 从10位开始
      （第二段密码）23 代表 从13位结束

      x代表随机数，这里是前台自动生产 可以是字母或者数字不可以是特殊字符
      特殊说明，X的位数是随机改变的，不是固定长度 这也是为什么要 开始8位数字的原因
      */
    if (!str) return ''
    const splitIndex = parseInt(Math.random() * (str.length / 2)) + 1
    const strArr = [str.substr(0, splitIndex), str.substr(splitIndex)]
    let r1length = parseInt(Math.random() * 10)
    const s1 = r1length + 10
    r1length += 2
    const e1 = s1 + strArr[0].length
    const r2length = parseInt(Math.random() * 10)
    const s2 = r2length + e1
    const e2 = s2 + strArr[1].length
    const uuid = this.uuid()
    const r1 = uuid.substr(Math.random() * 10, r1length)
    const r2 = uuid.substr(Math.random() * 10, r2length)
    const tmpStr = `${s1}${e1}${s2}${e2}${r1}${strArr[0]}${r2}${strArr[1]}`
    const r3length = 38 - tmpStr.length
    const r3 = uuid.substr(Math.random() * 10, r3length)
    return `${tmpStr}${r3}`
  },
  uuid () {
    return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
      var r = Math.random() * 16 | 0; var v = c == 'x' ? r : (r & 0x3 | 0x8)
      return v.toString(32)
    })
  }, 
  // hasSensWords(str){
  //   if(!str) return false
  //   let sensWords = JSON.parse(localStorage.getItem('sensWords') || 'null')
  //   if(!sensWords) return false
  //   let words = sensWords.filter(item => str.includes(item))
  //   return words.join(',') 
  // },
  isMobile(mobile){
    return /^1\d{10}$/g.test(mobile)
  },
  isIdCode(idCode){
    return /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|30|31)|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}([0-9]|x|X)$/.test(idCode)
  },
  isEmail(email){
    const ePattern = /^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/
    return ePattern.test(email)
  }
}
